home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Sprite 1984 - 1993
/
Sprite 1984 - 1993.iso
/
src
/
boot
/
netBoot.new
/
dev
/
xycreg.h
< prev
next >
Wrap
C/C++ Source or Header
|
1990-12-19
|
2KB
|
61 lines
/* @(#)xycreg.h 1.1 86/09/27 SMI */
/*
* Copyright (c) 1986 by Sun Microsystems, Inc.
*/
#ifndef _XYCREG_
#define _XYCREG_
/*
* Common Xylogics 450/472 declarations
*/
/*
* I/O space registers - byte accesses only
*/
struct xydevice { /* I/O space registers (at EE40) */
u_char xy_iopbrel[2]; /* 1,0 - IOPB relocation */
u_char xy_iopboff[2]; /* 3,2 - IOPB offset */
u_char xy_resupd; /* 5 - reset/update */
u_char xy_csr; /* 4 - controller status register */
};
/*
* Definitions for the two types of addressing -- set by jumpers.
*/
#define XY_20BIT 0 /* 20 bit addressing */
#define XY_24BIT 1 /* 24 bit addressing */
/*
* Macros to massage our address into 8086 style.
*/
#define XYOFF(a) ((int)(a) & 0xFFFF)
#define XYREL(xy, a) ((xy->xy_csr & XY_ADDR24) ? \
(((int)(a) & 0xFF0000) >> 16) : \
(((int)(a) & 0xF0000) >> 4))
#define XYNEWREL(f, a) ((f == XY_24BIT) ? \
(((int)(a) & 0xFF0000) >> 16) : \
(((int)(a) & 0xF0000) >> 4))
/*
* xy_csr bits
*/
#define XY_GO 0x80 /* w - start operation */
#define XY_BUSY 0x80 /* r - operation in progress */
#define XY_ERROR 0x40 /* r - error occurred / w450 - clear error */
#define XY_DBLERR 0x20 /* r - double error */
#define XY_INTR 0x10 /* r - interrupting / w450 - clear interrupt */
#define XY_ADDR24 0x08 /* r450 - addressing mode */
#define XY_ATTN 0x04 /* w450 - attention request */
#define XY_ACK 0x02 /* r450 - attention acknowledge */
#define XY_DREADY 0x01 /* r - drive ready */
/*
* Controller types
*/
#define XYC_440 0
#define XYC_450 1
#define XYC_472 2
#endif _XYCREG_